Skip to content

Conversation

@bjorn3
Copy link
Member

@bjorn3 bjorn3 commented Oct 23, 2025

This way we don't have to spawn the coordinator thread. Some errors will no longer be emitted with this in check mode. For example the check that -Ctarget-cpu is passed on targets that need this.

Suggested by @saethlin

@rustbot
Copy link
Collaborator

rustbot commented Oct 23, 2025

Some changes occurred in compiler/rustc_codegen_ssa

cc @WaffleLapkin

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Oct 23, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 23, 2025

r? @madsmtm

rustbot has assigned @madsmtm.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 23, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Oct 23, 2025
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 23, 2025
@rust-bors
Copy link

rust-bors bot commented Oct 23, 2025

☀️ Try build successful (CI)
Build commit: 3eae4c9 (3eae4c9d8d83d9f1eda6239b5443ae80fa3d06bd, parent: 11d2046fe9962720558cb15f72541f7fd170dec9)

@rust-timer

This comment has been minimized.

@scottmcm
Copy link
Member

Some errors will no longer be emitted with this in check mode.

Sounds allowed by https://rust-lang.github.io/rfcs/3477-cargo-check-lang-policy.html, so no issue so long as it's not skipping anything that would be needed particularly often.

(Not reporting things that'll be reported for any full build, like missing flags for a target, seems totally fine to me. That wouldn't be part of the core inner dev loop where check is most important.)

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (3eae4c9): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.9% [-1.4%, -0.7%] 5
Improvements ✅
(secondary)
-0.4% [-1.3%, -0.2%] 21
All ❌✅ (primary) -0.9% [-1.4%, -0.7%] 5

Max RSS (memory usage)

Results (primary -1.7%, secondary -3.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.7% [-2.1%, -1.3%] 3
Improvements ✅
(secondary)
-3.5% [-4.4%, -2.7%] 2
All ❌✅ (primary) -1.7% [-2.1%, -1.3%] 3

Cycles

Results (secondary -2.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.2% [-2.4%, -2.1%] 2
All ❌✅ (primary) - - 0

Binary size

Results (secondary -0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) - - 0

Bootstrap: 474.995s -> 475.128s (0.03%)
Artifact size: 390.51 MiB -> 390.45 MiB (-0.02%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 23, 2025
@bjorn3 bjorn3 force-pushed the check_skip_codegen_crate branch from 3e6df8b to 5a8ffa4 Compare October 24, 2025 10:25
@bjorn3
Copy link
Member Author

bjorn3 commented Oct 24, 2025

@bors try @rust-timer queue

To check how perf.rust-lang.org handles the change in timers.

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Oct 24, 2025
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 24, 2025
@rust-bors
Copy link

rust-bors bot commented Oct 24, 2025

☀️ Try build successful (CI)
Build commit: 1d990a0 (1d990a02a84d5e04783da0e318563db26401bc48, parent: 75948c8bb3bd37f1e8ee20273a04edea4c1f84f8)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (1d990a0): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.9% [-1.0%, -0.9%] 4
Improvements ✅
(secondary)
-0.4% [-0.8%, -0.1%] 29
All ❌✅ (primary) -0.9% [-1.0%, -0.9%] 4

Max RSS (memory usage)

Results (secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.4% [-2.2%, -0.5%] 2
All ❌✅ (primary) - - 0

Cycles

Results (secondary 0.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.5% [2.5%, 2.5%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.1% [-1.1%, -1.1%] 1
All ❌✅ (primary) - - 0

Binary size

Results (secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Bootstrap: 474.959s -> 474.684s (-0.06%)
Artifact size: 390.49 MiB -> 390.51 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 24, 2025
Copy link
Contributor

@madsmtm madsmtm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on the idea, and the perf improvements look real.

View changes since this review

Copy link
Contributor

@madsmtm madsmtm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@madsmtm
Copy link
Contributor

madsmtm commented Oct 27, 2025

@bors ping

@bors
Copy link
Collaborator

bors commented Oct 27, 2025

😪 I'm awake I'm awake

@madsmtm
Copy link
Contributor

madsmtm commented Oct 27, 2025

@bors r+

@bors
Copy link
Collaborator

bors commented Oct 27, 2025

📌 Commit 5a8ffa4 has been approved by madsmtm

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 27, 2025
@bors
Copy link
Collaborator

bors commented Oct 27, 2025

⌛ Testing commit 5a8ffa4 with merge adaa838...

@matthiaskrgr
Copy link
Member

does this mean that check-mode crater runs will be less effective in the future?

@madsmtm
Copy link
Contributor

madsmtm commented Oct 27, 2025

does this mean that check-mode crater runs will be less effective in the future?

Slightly, though I'd guess that most of the code that we now avoid running is exercised with a single rustc --emit=obj invocation, and the rest wouldn't be caught by crater anyhow (it'd only be hit with weird rustc flag combinations).

@saethlin
Copy link
Member

I think the only thing that this omits is errors that would be produced by creating the codegen backend. If someone was actually doing crater check runs to find those errors, I have questions.

@bors
Copy link
Collaborator

bors commented Oct 27, 2025

☀️ Test successful - checks-actions
Approved by: madsmtm
Pushing adaa838 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 27, 2025
@bors bors merged commit adaa838 into rust-lang:master Oct 27, 2025
13 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Oct 27, 2025
@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 9ea8d67 (parent) -> adaa838 (this PR)

Test differences

Show 4 test diffs

4 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard adaa838976ff99a4f0661136322f64cb466b58a0 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-apple: 7049.4s -> 8934.0s (26.7%)
  2. dist-apple-various: 4102.4s -> 3018.4s (-26.4%)
  3. x86_64-gnu-llvm-20: 2867.7s -> 2188.9s (-23.7%)
  4. pr-check-1: 1852.4s -> 1458.7s (-21.3%)
  5. dist-various-1: 3730.3s -> 4326.5s (16.0%)
  6. x86_64-gnu-gcc: 3344.7s -> 2836.0s (-15.2%)
  7. aarch64-gnu-llvm-20-2: 2580.1s -> 2238.8s (-13.2%)
  8. i686-gnu-nopt-1: 8544.3s -> 7428.2s (-13.1%)
  9. x86_64-msvc-2: 7237.6s -> 6390.4s (-11.7%)
  10. i686-gnu-2: 6152.2s -> 5502.0s (-10.6%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@bjorn3 bjorn3 deleted the check_skip_codegen_crate branch October 27, 2025 21:19
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (adaa838): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
1.2% [1.2%, 1.2%] 1
Regressions ❌
(secondary)
1.2% [1.2%, 1.2%] 1
Improvements ✅
(primary)
-0.8% [-0.8%, -0.8%] 3
Improvements ✅
(secondary)
-0.3% [-0.7%, -0.2%] 11
All ❌✅ (primary) -0.3% [-0.8%, 1.2%] 4

Max RSS (memory usage)

Results (secondary 4.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.4% [4.4%, 4.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (secondary -3.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.0% [-3.0%, -3.0%] 1
All ❌✅ (primary) - - 0

Binary size

Results (secondary -0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) - - 0

Bootstrap: 474.628s -> 473.263s (-0.29%)
Artifact size: 390.61 MiB -> 390.54 MiB (-0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Oct 27, 2025
@madsmtm
Copy link
Contributor

madsmtm commented Oct 28, 2025

Seems like it was only the syn-2.0.101 benchmark that regressed, and an earlier perf run showed only improvements, so it was probably spurious.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants